Scripting languages offer simplicity and ease of development to software developers. Script code is easy to write since scripting languages are often based on a small set of expressions and statements that are simple to learn. Software developers often use scripting languages for rapid development of applications, for example, web applications. Scripting languages may be used for server side programs or for client side programs. Examples of server side scripting languages include PHP (Personal Home Page) and examples of client side scripting languages include JAVASCRIPT.
Server side script code can be used for executing a user request received at a web server by dynamically generating web pages. Server side scripting is often used for implementation of interactive websites that interface with data stores for retrieving and storing information. The PHP scripting language allows embedding of script code with hypertext markup language (HTML). Client side script code is often used for performing simple computations on the client side rather than sending a request to the server for simple computations.
Conventional approaches to execute script code include executing the script code using an interpreter. However, an interpreter may not be able to perform several optimizations that a compiler that generates executable code can perform. Therefore, interpreting script code can be inefficient compared to running executable code obtained by compiling the script code. Furthermore, scripting languages often allow simplified syntax that makes it easier for a user to write script code. For example, scripting languages often support untyped variables that do not require a user to provide type information of the variable. As a result, a compiler processing script code may not have the required information for performing certain optimizations. For example, compiler optimizations often require knowledge of types of the variables that is not available in script code based on untyped variable. Even if the knowledge of types is available, the compilation techniques, especially just-in-time compilation techniques, do not generate optimal executable code.